package org.tabletopmachine.match.unit;

import java.util.EnumSet;

import org.tabletopmachine.match.SpecialRules;

public enum TroopType {
	Infantry("Infantry", EnumSet.of(SpecialRules.None)), MonstrousInfantry("Monstrous Infantry", EnumSet.of(SpecialRules.Stomp, SpecialRules.MonstrousRanks,
			SpecialRules.MonstrousSupport)), Cavalry("Cavalry", EnumSet.of(SpecialRules.Swiftstride, SpecialRules.CavalrySupportingAttacks)), MonstrousCavalry(
			"Monstrous Cavalry", EnumSet.of(SpecialRules.Swiftstride, SpecialRules.CavalrySupportingAttacks, SpecialRules.Stomp, SpecialRules.MonstrousRanks)), Swarms(
			"Swarms", EnumSet.of(SpecialRules.Skirmishers, SpecialRules.Unbreakable, SpecialRules.Squish)), WarBeasts("War Beasts", EnumSet
			.of(SpecialRules.Swiftstride)), MonstrousBeasts("Monstrous Beasts", EnumSet.of(SpecialRules.Stomp, SpecialRules.Swiftstride,
			SpecialRules.MonstrousRanks)), Monsters("Monsters", EnumSet.of(SpecialRules.Thunderstomp)), Chariots("Chariots", EnumSet.of(
			SpecialRules.ImpactHits, SpecialRules.NoSupportingAttacks, SpecialRules.Swiftstride, SpecialRules.NoStomp)), WarMachines("War Machines", EnumSet
			.of(SpecialRules.None)), UniqueUnits("Unique Units", EnumSet.of(SpecialRules.None)),None("None",EnumSet.of(SpecialRules.None));

	private final String _name;
	private final EnumSet<SpecialRules> _specialRules;

	TroopType(String name, EnumSet<SpecialRules> rules) {
		_name = name;
		_specialRules = rules;
	}

	public String getName() {
		return _name;
	}

	public EnumSet<SpecialRules> getSpecialRules() {
		return _specialRules;
	}
	public String toString(){
		return _name;
	}
}
